home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / menus / menus.frm next >
Text File  |  1997-08-09  |  6KB  |  156 lines

  1. VERSION 4.00
  2. Begin VB.Form Form1 
  3.    Caption         =   "Menu Array Example VB4 32"
  4.    ClientHeight    =   2610
  5.    ClientLeft      =   2685
  6.    ClientTop       =   3210
  7.    ClientWidth     =   5460
  8.    Height          =   3300
  9.    Left            =   2625
  10.    LinkTopic       =   "Form1"
  11.    LockControls    =   -1  'True
  12.    ScaleHeight     =   2610
  13.    ScaleWidth      =   5460
  14.    Top             =   2580
  15.    Width           =   5580
  16.    Begin RichtextLib.RichTextBox RichTextBox1 
  17.       Height          =   2625
  18.       Left            =   0
  19.       TabIndex        =   0
  20.       Top             =   0
  21.       Width           =   5445
  22.       _Version        =   65536
  23.       _ExtentX        =   9604
  24.       _ExtentY        =   4630
  25.       _StockProps     =   69
  26.       BackColor       =   -2147483643
  27.       ScrollBars      =   3
  28.       TextRTF         =   $"menus.frx":0000
  29.    End
  30.    Begin VB.Menu FileMenuHeader 
  31.       Caption         =   "&File"
  32.       Begin VB.Menu FileMenuItem 
  33.          Caption         =   "&Open"
  34.          Index           =   1
  35.       End
  36.       Begin VB.Menu FileMenuItem 
  37.          Caption         =   "&Save"
  38.          Enabled         =   0   'False
  39.          Index           =   2
  40.       End
  41.       Begin VB.Menu FileMenuItem 
  42.          Caption         =   "-"
  43.          Index           =   3
  44.       End
  45.       Begin VB.Menu FileMenuItem 
  46.          Caption         =   "E&xit"
  47.          Index           =   4
  48.       End
  49.    End
  50. End
  51. Attribute VB_Name = "Form1"
  52. Attribute VB_Creatable = False
  53. Attribute VB_Exposed = False
  54. Option Explicit
  55.  
  56. Private Sub FileMenuItem_Click(Index As Integer)
  57.    
  58.    Dim FileName As String
  59.    
  60.    'Note: Create this file if it doesn't exist already, or
  61.    'change it to another existing text file on your system.
  62.    'This example only deals with menu arrays, not File
  63.    'Handling nor Error Trapping. If you run the program and
  64.    'the file doesn't exist, choosing "Open" on the File Menu
  65.    'will cause an error.
  66.       
  67.    'Hint: You don't need to exit Visual Basic to create this file.
  68.    'Simply run the program, type something in the RichTextBox1
  69.    'Control and choose "Save" from the File Menu. Once something
  70.    'is typed in the RichTextBox1, the "Save" option will become
  71.    'enabled. This will create the file and make it possible to
  72.    'reopen it.
  73.    
  74.    'See RichTextBox1|Change for the code on how to enable/disable
  75.    'the Menu Array options for the "Save" function.
  76.    
  77.    FileName = "c:\test.txt"     '<----------------------
  78.                                                         '
  79.    Select Case Index                                    '
  80.       Case Is = 1   'Open File in RichTextBox1...       '
  81.          RichTextBox1.LoadFile FileName, rtfText   '----'
  82.       Case Is = 2   'Save File in RichTextBox1...       '
  83.          RichTextBox1.SaveFile FileName, rtfText   '----'
  84.       Case Is = 3   'This is the separator bar...
  85.       Case Is = 4   'Exit program...
  86.          End
  87.    End Select
  88.    
  89. End Sub
  90.  
  91.  
  92. Private Sub Form_Resize()
  93.  
  94.    If Form1.WindowState <> 1 Then   'If Form1 isn't minimized...
  95.  
  96.       'This code keeps the RichTextBox1 Control "maximized" as the
  97.       'size of the container Form1 is changed. If you stretch or
  98.       'shrink the size of Form1 without this code, the RichTextBox1
  99.       'will stay the same size, causing either an ugly looking program
  100.       '(if you make Form1 bigger), or, hidden controls (if you make
  101.       'Form1 smaller).
  102.     
  103.       'To get the numbers to use here, just look at the Height and
  104.       'Width Properties for both Form1 and RichTextBox1. Since we
  105.       'always want the RichTextBox1 to fill the form, each time
  106.       'Form1 gets RESIZED, we also change the size of RichTextBox1
  107.       'to match. The difference in Width is 135 twips and the
  108.       'difference in Height is 675 twips. Subtract the difference
  109.       'from Form1 and we get where we want RichTextBox1 to end up.
  110.       'There are 15 twips per pixel (for you graphics people).
  111.    
  112.       RichTextBox1.Width = Form1.Width - 135   'Resize to match...
  113.    
  114.       'The next If|Then is a graphics Error Trap. It keeps the user
  115.       'from making Form1 so small that RichTextBox1.Top would be
  116.       'outside of Form1 and cause an error. To see what happens,
  117.       'comment out the If|Then and run the program. Grab the lower
  118.       'righthand corner of Form1 and shrink the entire form as small
  119.       'as possible. The error will bring you right back here. ------
  120.       'We don't need to limit the Width to a minimum number         '
  121.       'of twips. Windows already limits the minimum Width of Forms  '
  122.       'that have a Control Box (the title bar with min|max|close    '
  123.       'buttons). The Startup Form in all Visual Basic programs      '
  124.       'MUST have a Control Box. Since this is the Startup Form      '
  125.       '(actually the ONLY Form), we don't need to worry about it.   '
  126.                                                                     '
  127.       If Form1.Height < 1200 Then                                   '
  128.          Form1.Height = 1200                                        '
  129.       End If                                                        '
  130.                                                                     '
  131.       'We could have just made the number 675, but this way, the    '
  132.       'smallest the user can make Form1 will still allow text in    '
  133.       'RichTextBox1 to be seen. Only a tiny bit, but some.          '
  134.                                                                     '
  135.       RichTextBox1.Height = Form1.Height - 675   '<-----------------'
  136.    
  137.    End If
  138.       
  139. End Sub
  140.  
  141.  
  142. Private Sub RichTextBox1_Change()
  143.  
  144.    'This code gets executed each time the text in RichTextBox1 changes.
  145.    'It only check to see if there is anything there or not.
  146.    'Note: Carriage Returns (CR) and Line Feeds (LF) count as "something".
  147.  
  148.    If RichTextBox1.Text = "" Then      'There's nothing in RichTextBox1...
  149.       FileMenuItem(2).Enabled = False  'Turn OFF the "Save" option...
  150.    Else                                'Otherwise...
  151.       FileMenuItem(2).Enabled = True   'Turn ON the "Save" option...
  152.    End If
  153.    
  154. End Sub
  155.  
  156.